package com.evan.webadmin.biz.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.evan.common.core.object.ResponseResult;
import com.evan.webadmin.biz.dto.ExamDto;
import com.evan.webadmin.biz.dto.ExamDtoFilter;
import com.evan.webadmin.biz.dto.ExamFilter;
import com.evan.webadmin.biz.dto.ExamRecord;
import com.evan.webadmin.biz.model.Exam;
import com.evan.webadmin.biz.vo.ExamFrontVo;
import com.evan.webadmin.biz.vo.ExamRankVo;
import com.evan.webadmin.biz.vo.ExamVo;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author Pavel
 * @since 2024-06-10
 */
public interface IExamService extends IService<Exam> {

    List<Exam> findByCondition(ExamFilter examFilter);

    void edit(ExamDto examDto);

    ResponseResult record(ExamRecord frontDto, HttpServletRequest request);

    ResponseResult<Exam> exist(ExamDtoFilter filter, HttpServletRequest request);

    ResponseResult<ExamFrontVo> recordDetail(ExamDtoFilter filter, HttpServletRequest request);

    ResponseResult<List<ExamRankVo>> rank(ExamDtoFilter filter);

    ResponseResult<ExamRankVo> rankSelf(ExamDtoFilter filter, HttpServletRequest request);

    List<ExamRankVo> rankList(ExamDtoFilter filter);

    List<ExamVo> listByCondition(Integer examType, String userName);

    long existExam(long paperId);
}
